home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / p4 / p4-1_2a.lha / p4-1.2a / contrib / lm1_master.c < prev    next >
C/C++ Source or Header  |  1992-10-19  |  1KB  |  56 lines

  1. #include "p4.h"
  2. #include "lm.h"
  3.  
  4. main(argc,argv)
  5. int argc;
  6. char **argv;
  7. {
  8. char buf[100];
  9. int i, n;
  10. int size;
  11. int slv = 3;
  12. int nbunches, bunchsize;
  13. int nslaves;
  14. int start, end;
  15. int type;
  16. char msg[200];
  17. char *rcvd_msg;
  18. int from,rcvd_msg_len;
  19.  
  20.     p4_initenv(&argc,argv);
  21.     p4_create_procgroup();
  22.  
  23.     p4_dprintf("entering master user code\n");
  24.  
  25.     nslaves = p4_num_total_ids() - 1;
  26.     p4_get_cluster_ids(&start, &end);
  27.  
  28.     p4_dprintfl(9,"got nslaves=%d start=%d end=%d\n",nslaves,start,end);
  29.  
  30.     printf("enter a number of bunches: ");
  31.     scanf("%d",&nbunches);
  32.     printf("enter size of a bunch: ");
  33.     scanf("%d",&bunchsize);
  34.     
  35.     type = CNTL;
  36.     sprintf(msg,"%d %d",nbunches,bunchsize);
  37.     for (i=1; i <= nslaves; i++)
  38.     {
  39.     p4_dprintfl(9,"sending msg %s to %d size=%d\n",msg,i,sizeof(msg));
  40.     p4_send(type, i, msg, sizeof(msg));
  41.     }
  42.     for (i=1; i <= nslaves; i++)
  43.     {
  44.         type = -1;
  45.         from = -1;
  46.     rcvd_msg= NULL;
  47.     p4_recv(&type, &from, &rcvd_msg, &rcvd_msg_len);
  48.     p4_dprintfl(9,"recvd msg from %d\n",from);
  49.     }
  50.  
  51.     p4_dprintfl(9,"master entering waitforend\n");
  52.     p4_wait_for_end();
  53.     p4_dprintfl(9,"master past waitforend\n");
  54.     p4_dprintf("exiting master user code\n");
  55. }
  56.